package com.qq2008.game.mojie.mapper;

import java.util.List;
import java.util.Map;

/***
 * 通用Mapper
 * @param <T>
 */
public interface BaseMapper<T> {

    /***
     * 根据主键查询
     * @param id 主键
     * @return T 对象
     */
    T get(int id);

    /***
     * 根据条件查询
     * @param param 查询条件Map
     * @return List<T> 查询列表
     */
    List<T> list(Map<String, Object> param);

    /***
     * 新增
     * @param t 新增对象
     * @return 影响行数
     */
    int insert(T t);

    /***
     * 根据主键更新
     * @param t 修改对象
     * @return 影响行数
     */
    int update(T t);

    /***
     * 根据条件更新
     * @param param 修改条件Map
     * @param data  修改数据Map
     * @return 影响行数
     */
    int update(Map<String, Object> param, Map<String, Object> data);

    /***
     * 根据主键查询
     * @param id 主键
     * @return 影响行数
     */
    int delete(int id);

    /***
     * 根据条件删除
     * @param param 删除条件Map
     * @return 影响行数
     */
    int delete(Map<String, Object> param);

    /***
     * 统计行数
     * @param param 查询条件Map
     * @return 查询行数
     */
    int count(Map<String, Object> param);
}
